home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
comms
/
ppppkt05.zip
/
ppppkt.doc
< prev
next >
Wrap
Text File
|
1994-11-16
|
36KB
|
813 lines
File: PPPPKT.DOC
PPPPKT Ver 0.50 Copyright 1994 - [totally] ÆΩεσöµε Software
Usage:
=====
C:\> PPPPKT [/Option Value ][/Option Value ]...
Options [default] (any order, / = DOS SwitchChar)
b - Board [1] v - Interrupt Vector [60h]
i - IP number [0.0.0.0] g - Gateway [0.0.0.0]
m - Subnet Mask [func(i,g)] t - Interface Type [80]
? - Help [off] d - Disable nodeaddress door
Numbers (max. 255) specified as: either 0xNN, NNh (hex) or NNN (dec).
Copyright, Licence, Warranty Disclaimer:
=======================================
See the FINE PRINT section at the end of this document.
Document Organization:
=====================
Synopsis. PPPPKT is ...
Options. Complete summary.
Getting Started. Overview.
Detailed Comments. Underview.
Technical Summary. Oh, is that right ?
Caveats. PPPPKT is *not* ...
Acknowledgements. Without whom ...
FINE PRINT. Read this !
Synopsis:
========
PPPPKT is a TSR `shim' or `adapter' providing a Class 1
ethernet packet driver interface over the Novell LAN
WorkPlace for DOS SLIP_PPP driver. It is suitable for use
over those PPP or SLIP links which carry only IP packets.
PPPPKT lets you use certain applications, which were
designed to be used on an ethernet connection, over a PPP
(or SLIP) connection. This combines the benefits of the
stable and fully-featured Novell SLIP_PPP driver with a
minimum of memory overhead. A typical installation of
the necessary TSR's looks like this:
Psp Size Name Description Hooked Vectors
---- ------ ---------- ------------------- --------------
1670 18,592 LSL Link Support Layer 08 2F E6
1AC7 23,648 SLIP_PPP ODI Link Driver 0C E1
208E 1,536 PPPPKT Adapter 60
for a total memory usage of about 43 Kbytes.
The overall performance varies with the application. It
may work very well, may work slowly (either passably or
unacceptably), or it may not work at all. Your mileage
depends on the application; you have to test drive them.
The file APPHINTS.TXT contains performance evaluations,
configuration hints and ftp sources for some TCP/IP
applications that have been tested with PPPPKT.
Why use PPPPKT instead of an ODI-based application?
Some of your favourite applications may not have been
ported to ODI, or the ODI version may be unsuitable.
Options:
=======
The options supported by PPPPKT must appear after the
DOS SwitchChar (represented here by '/' as is customary).
All of the options are followed by one or more numerical
parameters. These numbers may be specified in either hex
or decimal form. The hex forms 0xNN, 0NNh and NNh are
all recognized. A brief summary of the options is
presented first, followed by a more detailed discussion.
(The IP addresses are examples; use your own.)
Option Meaning Example
------ ------- -------
/b <board#> network logical Board /b 1
/v <vector> software interrupt /v 60h
Vector
/i <ip#> IP address of your PC /i 130.244.17.25
/d Disable nodeaddress door
/g <gateway> IP address of your /g 132.244.12.9
internet Gateway
/m <mask> subnetting Mask /m FFh.FFh.0.0
/t <type> interface Type /t 14
Board: This is the logical board number for the PPP frame
provided by the SLIP_PPP driver, in the context of
Novell LAN WorkPlace (LWP) and the NET.CFG file.
Board numbering starts at 1 (not 0), as per the ODI
specification. Note that PPPPKT does not have a
NET.CFG entry, but if it did this would be the board
that PPPPKT "bind"s to.
DEFAULT: 1.
Vector: The software interrupt vector to be hooked by PPPPKT.
Must be in the range 60h ... 80h. Typically interrupts
60h through 67h are reserved for user purposes; it's
a good idea to choose a free one in this range.
DEFAULT: 60h.
IP#: The IP (Internet Protocol) address for your end of
of the PPP connection. If you are using a static
address, it will be assigned to you by your network
administrator. If you use dynamic address negotiation,
the address varies from one connection to the next, and
is assigned to you by the remote software from a pool
of addresses. The IP# used by PPPPKT is determined by
the following hierarchy, listed from highest to lowest
precedence:
(1) Command line /i option.
This is useful for dynamic addressing, or for
static addresses once put in a batch file.
(2) Taken from the NET.CFG file. [If /i absent.]
You can specify the IP# by adding an appropriate
"node address" line to the "Link Driver SLIP_PPP"
section of your NET.CFG file. Use:
node address NNNNNNNN0000
where NNNNNNNN is your IP#, in hex, with no dots.
For example 130.244.17.25 leads to the entry
node address 82F411190000
This is a convenient `back door' if your IP# is
fixed.
(3) Taken direct from memory image of SLIP_PPP TSR.
[If "node address" is 0 or absent from NET.CFG,
or if "/d" flag is set.] Currently this method
is a bit of a kluge, but is very useful when it
works. The dword at offset 5112h in the image
of SLIP_PPP v4.1 (R41-1, 921113) seems to hold
the IP number after a PPP connection is made.
This may not be universal so it is given least
priority. Try if it works for you (see the
"Detailed Comments" section).
Disable: This flag turns off the "node address" doorway
(method (2) above) for specifying your IP#. This is
only of interest if method (3) works.
DEFAULT: no flag.
Gateway: The IP address of a local computer that connects
your university, organization, or internet provider
to the rest of the internet.
DEFAULT: 0.0.0.0
Mask: The subnetting mask, to be used by your ethernet
application over the PPP link. It is determined
automatically by PPPPKT based on your PC's and
gateway's IP numbers.
DEFAULT: function of <ip#> and <gateway>.
Type: Packet driver interface type, within Class 1 of the
FTP Software spec, which PPPPKT reports to applications
in response to a driver_info() function call. Normally
you need *not* use this option. Possible types of
interest:
14 -- used by Merit's ETHERPPP
71 -- ODI to packet driver adapter (ODIPKT)
80 -- SLIP simulated ether
This option does not affect the actual operation of
PPPPKT in any way. It is provided as a convenience in
the unlikely event that an application will configure
itself for improved performance with a particular type.
DEFAULT: 80.
Note that, at a minimum, you *must* provide your IP#
and gateway information to PPPPKT. It is crucial that
the IP# be correct, and that the IP#, gateway and netmask
parameters used by PPPPKT and to configure applications
be identical.
The space between an /Option and the parameter following
it is optional. However you must leave a space before
each / delimiter. The command line is case-insensitive.
Users of DOS 3.3 (truly `the best DOS ever') will be
pleased to know that a user-defined SwitchChar is supported.
Getting Started:
===============
This section is an overview. Further details appear in
the next section.
In order to use this software, you need:
* A PPP or SLIP account for internet connection. For
brevity, this document usually refers just to PPP.
* If you are using a dial-up connection over a modem,
you'll need a communications, or dialer, program to
initiate, and close, the connection.
* Two Novell LAN WorkPlace for DOS programs:
LSL.COM ... Link Support Layer
SLIP_PPP.COM ... Link Driver
For testing, the following are helpful:
TCPIP.EXE ... ODI TCP/IP protocol stack
PING.EXE ... ODI ping application
* Properly configured NET.CFG file.
* TCP/IP application programs that use a Class 1 packet
driver. They must be properly configured. They must use
no protocols other than IP, ARP and RARP.
* A TERMIN.COM program is helpful, to terminate/unload
PPPPKT (i.e. remove it from memory).
Once you have obtained all the necessary software, a
simple outline of one way to proceed is the following:
o Create a directory to hold the Novell programs listed
above, your NET.CFG file, TERMIN and PPPPKT. Even if
you're a current user of LWP, it is a good idea to keep
these things separate, so as not to `break' your existing
setup. Let's call this directory C:\PPP here, to be
definite.
o Prepare a NET.CFG file, specially for PPP, in this
directory.
o Go through a `dry run.' From this directory load
LSL
SLIP_PPP
PPPPKT /g <gateway> /i <ip#> [ ... ]
Do not use the /m option here! For dynamic addresses,
use a typical value of the <ip#>. Note down the "Mask"
parameter reported by PPPPKT when it loads. It will
look something like this: FF.FF.00.00 hex. (On the
command line, FF would be written FFh, 0xFF or 255.)
Unload the TSR's with
TERMIN 0x60
SLIP_PPP u
LSL u
o Determine your <netmask> parameter. The details of
this depend on whether you have a static or dynamically
assigned IP#.
For a static (fixed) IP#, use the value noted above
to configure the netmask in applications. You don't
need to use the /m option when loading PPPPKT, since it
will always be computed for you.
For dynamic addresses there is a very slight potential for
difficulty because the netmask must be consistent with all
of the IP numbers that might be assigned. Exactly what
this `consistency' means is discussed in the "Technical
Summary" section. Here are two simple ways to proceed:
1. If your PPP provider or remote software tells you what
netmask to use, try using that value.
2. Use the netmask noted above in the dry run. It
should work in virtually all circumstances.
If this does not work, applications will not believe they
are on an ethernet, and won't send packets anywhere, etc.
In general the netmask, gateway IP, and your IP# must be
mutually consistent. Given your gateway, you must pick a
suitable netmask which will work with any IP# that you
could be assigned. To do this by hand, take the netmask
calculated by PPPPKT, and replace one or more of the
rightmost 1's in its binary representation by 0's. Use
this value with the /m option when loading PPPPKT, and to
configure applications, until things are consistent and
working. For example, suppose PPPPKT calculated the
netmask FF.FF.C0.00 hex, and it did not work. Then you
should try FF.FF.80.00 hex, followed by FF.FF.00.00 hex,
etc.
o Configure your application program(s). Depending on
the app, this may involve editing a configuration file,
running the program and going into a Setup menu, etc.
The main point to be made, at this time, is that when
configuring the `subnetting mask' option for the app, you
should use the value determined as indicated above. Also
be sure the gateway IP and your IP# are the same as used
to load PPPPKT.
o Either dialing `by hand' or with a script, get your
communications package to dial the phone, log in to the
PPP account, and get the remote host to the point of
negotiating the PPP connection. Then exit the
communications program without closing the connection.
o CD to C:\PPP and load LSL, SLIP_PPP and TCPIP in that
order. Wait 5 - 10 seconds and try to ping a local
machine using its IP address (each NN represents a
number in the range 1..255) :
PING NN.NN.NN.NN
Do not use a domain name here. If the connection is
working, PING should reply with something like:
NN.NN.NN.NN is alive
Also, running SLIP_PPP again with the "r" flag
SLIP_PPP r
will show some statistics indicating if packets have
been sent and received.
o Unload the TCPIP stack; it is not needed further:
TCPIP u
o For users of dynamic IP addressing, determine your
IP# for the session, if necessary by using SLIP_PPP's
"c" flag:
SLIP_PPP c
It's the 8-digit hex number under "Local IP address".
See also the "IP# Specification Strategy" part of the
next section.
o Load PPPPKT.
PPPPKT /g <gateway> [/i <ip#> /m <netmask> ...]
o Run your application(s).
o To close the session, unload the TSR's as indicated
above and hang up the phone.
Detailed Comments:
=================
* Communications.
You can try whatever package you are familiar with, for
example MS-Kermit, Procomm, Telix, etc. The advantage of
MS-Kermit is that it is both free, and (Ver. 3.13)
supports TCP/IP in a way that is relatively easy to
configure. Thus, telnet inside MS-Kermit can be one of
your applications. To get started quickly, though, stick
to a package you know.
There are also a number of `dialer' programs available
on internet which may do what is needed. For example,
COMTOOL in:
mvmpc9.ciw.uni-karlsruhe.de:/nos/sliplog/sliplog.zip
* Novell LAN WorkPlace Programs.
The information related to this subsection is provided
merely as a curiosity, and may be incorrect. It is
entirely the responsibility of the potential user (you)
to determine and meet all legal requirements for the use
of the Novell software. Novell LWP for DOS is a commercial
networking package, and is copyright by Novell, Inc.
If you are a current LWP user then you might already
have the necessary files listed above, and you may be
interested to know that updated current versions are
available on Novell's ftp site:
ftp.novell.com:/pub/pub2/UNIXCONN/LWDOS42/
The necessary files are also available in a sample
package. It is apparently for general distribution to
all who are interested. Try:
sjf-lwp.novell.com:/lwp4dos/ppp_sample/pppsampl.zip
/old/lsl.com
slip_ppp.com
or:
novell.felk.cvut.cz:
/appl/pub/mirrors/netwire/sjf-lwp/lwp4dos/ppp_samp/pppsample.zip
Compatible versions of the Novell programs are:
LWP for DOS Ver. Sample Ver.
LSL v1.21 (920130) v2.00 (920904)
SLIP_PPP v4.1 (R41-1, 921113) v4.1 (R41-1, 921113)
TCPIP v4.12 (R412-2a, 940404) v4.1 (R41-1h, 930402)
PING v4.12 (R412-2a, 940404) v4.1 (R41-1, 921113)
If you use LAN WorkPlace for WINDOWS, you must obtain
the DOS drivers. Store, and run, them separately from
the Windows drivers. The latter will not maintain the
PPP connection by themselves, as they require Novell's
Windows dialer support.
If you will use PPPPKT in tandem with TCPIP.EXE, please
read this paragraph. There are three types of ODI
protocol stacks: prescan, bound and default. As the names
suggest, a prescan stack is passed all incoming packets
and chooses which if any it will consume, bound stacks
receive specific protocols not eaten by a prescan stack
(if present), and finally a default stack is handed any
packets not used by prescan and bound stacks. This
version of PPPPKT is a default stack. It can remain
loaded in memory, with TCPIP.EXE taking control of IP
packets when it is loaded too. I.e., if both are loaded
simultaneously, only TCPIP.EXE will work.
* NET.CFG.
Here is a relatively minimal example NET.CFG file for
use with PPP and PPPPKT. A similar file, NET_CFG.SAM,
with most of the comments removed is included with the
PPPPKT package. Copy it to NET.CFG and edit it with your
own parameters.
;---------
; C:\PPP\NET.CFG:
Link Support
Max Boards 1 ; if only 1 logical board
Max Stacks 3 ; enough for PPPPKT and TCPIP.EXE
MemPool 1024 ; only for TCPIP.EXE, size as needed
Buffers 8 1600 ; *crucial*
Link Driver SLIP_PPP
int 4 ; Hardware IRQ for serial port
port 3E8 ; I/O address for serial port
node address NNNNNNNN0000 ; <ip#>0000, hex, no dots
baud 38400 ; DTE CONNECT speed
mru 1500
accm 00000000 ; Async Control Character Map
accomp yes ; Address&Control field compression
pcomp yes ; Protocol field compression
open active
tcpipcomp vj
ipaddr NN.NN.NN.NN ; <ip#> (or 0.0.0.0 for dynam addr)
frame PPP ; board #1
Protocol IP 0800 PPP
Protocol TCPIP
PATH SCRIPT C:\NETWORK\LWP\SCRIPT ; For LWP users
PATH PROFILE C:\NETWORK\LWP\PROFILE ; "
PATH LWP_CFG C:\NETWORK\LWP\HSTACC ; "
PATH TCP_CFG C:\NETWORK\LWP\TCP ; "
ip_router GG.GG.GG.GG ; <gateway>
ip_netmask 255.MM.MM.0 ; <mask>
ip_address NN.NN.NN.NN ; your <ip#>
tcp_window 4096
tcp_sockets 12
udp_sockets 8
raw_sockets 1
bind SLIP_PPP
;---------
Explanation of some of these entries may be helpful.
o Max Boards: Normally you will only have one logical
board, so setting this to 1 saves a bit of memory.
o Max Stacks: 3 is enough to run PPPPKT and TCPIP
together. To load more protocol stacks, increase this.
o MemPool: This entry is needed only by TCPIP.EXE,
minimum of 1024. Omit it for just PPPPKT.
o Buffers: PPPPKT requires overhead space beyond the
size of an ethernet packet's data, in order to work with
ODI. It is critical to have sufficiently many buffers of
adequate size, say 1600 bytes, *not* 1500.
o int, port: The example is set for COM3. Use the
values for the COM port your modem / serial port is on.
The standard COM port assignments are:
COM1 COM2 COM3 COM4
int 4 3 4 3
port 3F8 2F8 3E8 2E8
o node address: This is the `back door' discussed in
the "Options" section; a way to tell PPPPKT your IP#
without using the command line. Use your hex IP# without
0x or h, dots removed, and with 0000 appended. Don't
use this entry for dynamically assigned IP#'s.
o baud: Speed of the serial port connection, i.e. modem
to PC CONNECT speed. Don't confuse with the modem-modem
CARRIER speed. With a buffered UART the CONNECT speed
can be higher than the CARRIER speed. Typical baud
values: 9600, 14400, 38400, 57600. In a multi-tasking
environment, be conservative.
o ipaddr: your IP#, if fixed (static), or set this to
0.0.0.0 if your account uses dynamic address negotiation.
o frame: This identifies the frame type, PPP or SLIP. This
line also implies the ODI logical board number, and thus
determines the /b <board> parameter for PPPPKT. Usually
there will be only one frame type and <board> = 1. If you
are using other frame types, <board> is determined in the
usual way. Again, board numbering starts at 1, not 0.
o Protocol TCPIP section: For use with TCPIP.EXE, the NET.CFG
file should also contain this section. This is used if
toggling between running ethernet app's through PPPPKT and
ODI app's via TCPIP.EXE. For example, to test the link with
TCPIP.EXE and PING as described above, this section is needed.
Important: do *not* include any comments in this section.
The first 4 lines (capitalized) are only relevant to LWP
users, who will have an existing NET.CFG file containing
similar lines.
* IP# Specification Strategy.
What is the best of the three ways to specify your IP#
to PPPPKT? This depends on your situation. If the direct
method, (3), works for you, it is the most convenient. To
check if it works, bring up a PPP connection, run
SLIP_PPP c
and note your IP#, then load PPPPKT with only the /d flag
PPPPKT /d
(Alternatively, run the included SHOWIP.COM.) If the IP#
reported by PPPPKT when it loads (or by SHOWIP) agrees with
the previous one, method (3) is working. (Be sure to check
this if you change your PPP setup.) In this case you can
load PPPPKT with no /i option and no "node address" line,
or use the /d flag if you do keep the "node address" line.
If method (3) does not work, then if you use:
- Only a static ip address: use either the "node address"
doorway (2) or set /i within a batch file.
- Only dynamic addresses: set the IP# by hand each time
using the /i option.
- Both static and dynamic addresses: use /i for dynamic
addresses, and a "node address" line for static.
* Application Configuration.
Typically you must supply the application with some of
the configuration information discussed above, as well as
other things. Remember to use the `Mask' value determined
as discussed above and, used when loading PPPPKT. This
ensures that the app's TCPIP stack can contact all internet
sites.
If the app supports RARP, that may be used by the app
to determine the IP address. This is particularly
convenient in the case of dynamic address assignment.
PPPPKT provides replies to RARP requests using the <ip#>
parameter you load it with. The included program SHOWIP.COM
can also be useful in setting up config files when dynamic
addresses are used. See SHOWIP.DOC.
Other parameters such as various server addresses must
be obtained from your internet provider or networking
guru. TCP parameters like max. segment size, max.
transmission unit, and receive window, may be required.
Configuration varies from app to app; see the app's
documentation for help. Also, see APPHINTS.TXT.
* TERMIN.COM .
A suitable terminate program is part of the Crynwr
Software packet driver collection. Try:
boombox.micro.umn.edu:/pub/pc/packet-drivers/programs/termin.com
or for the whole collection:
oak.oakland.edu:/SimTel/msdos/pktdrvr/
Technical Summary:
=================
PPPPKT conforms to revision 1.09 of the FTP Software
packet driver spec. It is a Class 1 driver (Ethernet_II
or DEC/Intel/Xerox `Bluebook' Ethernet), of type 80
(SLIP-simulated ether) by default. Its functionality
is 5 (basic & high-performance), *however* the only
high-performance function supported is get_parameters().
It supports no extended functions.
From the link driver perspective, PPPPKT is an ODI
default protocol stack.
PPPPKT emulates a local ethernet interface to the
application software, despite running over a PPP link.
The machines deemed to be on this virtual ethernet are
determined by the netmask. The netmask computed by PPPPKT
is a function of the supplied <ip#> and <gateway> via a two
stage process. First, a value is obtained based just on
the class (i.e. class A, B or C) of the <ip#>, specifically
class A ==> 255.0.0.0
class B ==> 255.255.0.0
class C ==> 255.255.255.0
If this value is consistent with the gateway's IP number,
that is, if
( <netmask> & <gateway> ) = ( <netmask> & <ip#> )
[where & represents logical AND]
then this value is used as the netmask. (See RFC 950.)
Otherwise, a different netmask value is chosen: it is the
largest number which (a) is consistent in the above sense,
and (b) has a binary form of 1's followed by 0's.
In actual fact, the <gateway> IP number can usually be
chosen to be just about anything. It need not even belong
to a real machine, provided that no application attempts to
send a datagram addressed *at the IP level* to the gateway.
What is important is that the <gateway>, <ip#> and <netmask>
parameters form a consistent set, so that applications
believe they can send and receive packets to and from the
gateway *at the ethernet level*. For safety and to avoid
confusion, however, it seems best to set <gateway> to a
suitable real machine.
PPPPKT allows applications to register any protocols
having 2-byte ethertypes. *However*, all protocols
except for IP, ARP and RARP are ignored. An application
making essential use of other protocols will not function.
For example, you cannot directly receive or transmit IPX
packets. Because of this 2-byte restriction, some older
versions of TERMIN.COM will not work.
When appropriate, PPPPKT internally generates replies
to ARP and RARP packets sent by the application, while
all IP packets are sent out over the link. Packets
received from the link are expected only to be IP in the
situations where PPPPKT will be used. Incoming non-IP
packets are discarded, while IP packets are passed to the
app's receiver.
The application's receive handler for ARP and RARP
packets must be capable of handling replies before the
corresponding send routine has terminated.
Caveats:
=======
- PPPPKT is not a "PPP class" packet driver (Class 16
or 18 of revision 1.11 of the FTP Software spec.)
- PPPPKT is not designed to, and will not, function with
ODI MLID's other than SLIP_PPP.
- The emulation of ethernet over a PPP link inevitably has
shortcomings, some of which are mentioned in the above
section. Clearly, ethernet-speed connectivity over
dialup lines will also not be achieved with current modem
technology. If the application is sensitive to such
timing matters, problems can arise.
- Despite the fact that PPPPKT is not `all things to
all applications' it can be very useful depending on the
circumstances. It was written because the need for a
program which fills this niche was felt.
Acknowledgements:
================
None of the following people or organizations are in any
way responsible for maintaining and/or supporting PPPPKT.
Their indirect assistance in the form of publicly available
documentation and code is gratefully acknowledged here.
These materials, together with the RFC collection, were
essential to the development of PPPPKT.
(1) Portions of PPPPKT's code originate from ODIPKT version 2.4.
ODIPKT.ASM is:
; (c) Copyright Daniel D. Lanciani 1991-1993. All rights reserved.
;
; This unmodified source file and its executable form may be used and
; redistributed freely. The source may be modified, and the source or
; executable versions built from the modified source may be used and
; redistributed, provided that this notice and the copyright displayed by
; the exectuable remain intact, and provided that the executable displays
; an additional message indicating that it has been modified, and by whom.
;
; Daniel D. Lanciani releases this software "as is", with no express or
; implied warranty, including, but not limited to, the implied warranties
; of merchantability and fitness for a particular purpose.
;
; Please send bug reports to ddl@harvard.harvard.edu or
;
; Dan Lanciani
; 185 Atlantic Road
; Gloucester, MA 01930
; (508) 283-4974
Please do *not* send PPPPKT bug reports to Dan Lanciani.
(2) The LAN WorkPlace for DOS package and the Open Data-Link
Interface specification were developed and are Copyright by:
Novell, Inc.
122 East 1700 South
Provo, Utah 84606
(3) The FTP Software packet driver specification was
developed and is Copyright by:
FTP Software, Inc.
2 High Street
North Andover, MA 01845
(508) 685-4000
(4) NOTE: PPPPKT is archived using Info-ZIP's compression
utility. Info-ZIP's software (Zip, UnZip and related
utilities) is free and can be obtained as source code or
executables from various bulletin board services and
anonymous-ftp sites, including CompuServe's IBMPRO forum
and ftp.uu.net:/pub/archiving/zip/* and SimTel:
oak.oakland.edu:/SimTel/msdos/zip/* .
(5) Thanks to the beta testers, for their time and helpful
comments.
(6) Prof. Balram Bhakar, University of Manitoba, re-kindled
interest in the Novell ODI drivers.
FINE PRINT:
==========
All products mentioned in this documentation which are
patented, copyrighted or are trademarks are the property
of their respective owners. Novell is a registered
trademark of Novell, Inc. ODI, LSL and MLID are
trademarks of Novell, Inc.
PPPPKT is Copyright 1994 by Frank Molzahn.
All applicable rights reserved.
PPPPKT is smilley-ware. If you think this software is
worth using (or maybe you just like the DOC), why not
send the author your smilley?
PPPPKT may be freely distributed provided all the files in
the package are present and unmodified. This specifically
includes the files
APPHINTS.TXT
NET_CFG.SAM
PPPPKT.COM
PPPPKT.DOC
README.1ST
SHOWIP.COM
SHOWIP.DOC
This copyright, licence and warranty disclaimer notice
applies to the entire PPPPKT package. If you are unsure
whether or not your PPPPKT is intact, download the current
version from SimTel.
PPPPKT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
either expressed or implied, including, but not limited
to, the implied warranties of merchantability and fitness
for a particular purpose. The entire risk as to the
quality and performance of the product is with the user.
This documentation explicitly states that PPPPKT will not
work properly in some circumstances; the user assumes the
cost of all necessary servicing, repair or correction.
In no event will Frank Molzahn be liable for damages,
including any general, special, incidental or consequential
damages arising out of the use of, or inability to use,
PPPPKT (including but not limited to loss of data or data
being rendered inaccurate or losses sustained by the user
or third parties or a failure of the product to operate
with any other programs), even if the author has been
advised of the possibility of such damages.
These copyright, license, and disclaimer notices must be
included with all copies of PPPPKT.
You may use PPPPKT if, and only if, you have read,
understood and accepted all of the above conditions.
Please contact me to report bugs or errors in the document
(even minor ones). If you are an application developer or
ODI/packet programmer and have constructive suggestions for
improving the performance of PPPPKT I'd be glad to hear
from you.
[totally] ÆΩεσöµε Software
is:
Frank Molzahn
7 Denton Place
Winnipeg, MB
Canada
R3R 2Z9 molzahn@cc.umanitoba.ca